package com.yuanfeng.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanfeng.business.dto.GateOpenDTO;
import com.yuanfeng.business.dto.GateQueryStoreDTO;
import com.yuanfeng.business.entity.ShopGateEntity;
import com.yuanfeng.commoms.dto.shop.GateStoreUpdateDTO;
import com.yuanfeng.commoms.util.ResponseResult;

import java.util.Map;

/**
 *
 */
public interface ShopGateService extends IService<ShopGateEntity> {

    /**
     * 根据userId查门店账号信息
     * @param map
     * @return
     */
    ResponseResult queryGateShopIdByUserId(Map<String, String> map);

    /**
     * 查询当前用户是否是门店账号
     * @param userMobile
     * @return
     */
    Integer queryUserIsGate(String userMobile);

    /**
     * 更新门店自提订单销量库存
     * @param saleSum
     * @return
     */
    ResponseResult updateShopGateStock(String saleSum);

    /**
     * 商品门店查询
     * @param param
     * @return
     */
    ResponseResult queryGateDetail(Map<String,Object> param);

    /**
     * 查询是否门店
     * @param paraMap
     * @return
     */
    ResponseResult isShopGate(Map<String, String> paraMap);

    /**
     * 商品门店查询
     * @param gateQueryStoreDTO
     * @return
     */
    ResponseResult queryGateStore(GateQueryStoreDTO gateQueryStoreDTO);

    /**
     * 查询门店店铺名称
     * @param orderGateShopId
     * @return
     */
    String queryGateStoreName(Integer orderGateShopId);

    /**
     * 开启门店接口（支持批量开启）
     * @param gateOpenDTO
     * @return
     */
    ResponseResult openGateStore(GateOpenDTO gateOpenDTO);

    /**
     * 关闭门店接口（支持批量开启）
     * @param gateOpenDTO
     * @return
     */
    ResponseResult stopGateStore(GateOpenDTO gateOpenDTO);

    /**
     * 编辑门店信息接口
     * @param gateStoreUpdateDTO
     * @return
     */
   ResponseResult updateGateStore(GateStoreUpdateDTO gateStoreUpdateDTO);

    /**
     * 门店查询接口
     * @param gateStoreQueryDTO
     * @return
     */
   ResponseResult queryGateStoreByPage(GateQueryStoreDTO gateStoreQueryDTO) throws IllegalAccessException;

    /**
     * 查询所在区域的门店信息
     * @param param
     * @return
     */
    ResponseResult queryShopNearBy(Map<String,Object> param);

    /**
     * 查询门店商品
     * @param param
     * @return
     */
    ResponseResult queryGoods(Map<String, Object> param);
}
